#pragma once
#include <iostream>
#include <vector>
#include <ctime>
typedef void (*task_t)();

// 任务
void task1()
{
    std::cout << "元歌本体释放一技能: 秘术・影" << std::endl;
}

void task2()
{
    std::cout << "元歌本体释放二技能: 秘术・纸雏鸢" << std::endl;
}

void task3()
{
    std::cout << "元歌本体释放三技能: 秘术・十字闪" << std::endl;
}

void task4()
{
    std::cout << "元歌本体释放四技能: 秘术・散" << std::endl;
}

class Task_Manger
{
public:
    Task_Manger()
    {
        srand(time(nullptr));
    }

    void Task_Register(task_t t)
    {
        _tasks.push_back(t);
    }

    int Code()
    {
        return rand() % _tasks.size();
    }

    void Execute(int code)
    {
        if (code >= 0 && code < _tasks.size())
            _tasks[code]();
    }

    ~Task_Manger() {}

private:
    std::vector<task_t> _tasks;
};
